use clap::{self, SubCommand};
use cargo::CargoResult;
use cargo::core::Workspace;
-use cargo::ops::{CompileFilter, CompileMode, CompileOptions, MessageFormat, NewOptions, Packages,
- VersionControl};
+use cargo::core::compiler::MessageFormat;
+use cargo::ops::{CompileFilter, CompileMode, CompileOptions, NewOptions, Packages, VersionControl};
use cargo::util::paths;
use cargo::util::important_paths::find_root_manifest_for_wd;
);
let build_scripts = super::load_build_deps(cx, unit);
let kind = unit.kind;
- let json_messages = bcx.build_config.json_messages;
+ let json_messages = bcx.build_config.json_messages();
// Check to see if the build script has already run, and if it has keep
// track of whether it has told us about some explicit dependencies
/// Whether we are running tests
pub test: bool,
/// Whether to print std output in json format (for machine reading)
- pub json_messages: bool,
+ pub message_format: MessageFormat,
}
impl BuildConfig {
target: target_config,
release: false,
test: false,
- json_messages: false,
+ message_format: MessageFormat::Human,
})
}
.map(|s| s.as_str())
.unwrap_or(self.host_triple())
}
+
+ pub fn json_messages(&self) -> bool {
+ self.message_format == MessageFormat::Json
+ }
+}
+
+#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+pub enum MessageFormat {
+ Human,
+ Json,
}
/// Information required to build for a target
let dep_info_loc = fingerprint::dep_info_loc(&mut cx, unit);
rustc.args(&cx.bcx.rustflags_args(unit)?);
- let json_messages = cx.bcx.build_config.json_messages;
+ let json_messages = cx.bcx.build_config.json_messages();
let package_id = unit.pkg.package_id().clone();
let target = unit.target.clone();
.into_iter()
.map(|s| s.to_owned())
.collect();
- let json_messages = bcx.build_config.json_messages;
+ let json_messages = bcx.build_config.json_messages();
Ok(Work::new(move |_| {
// If we're a "root crate", e.g. the target of this compilation, then we
ColorChoice::CargoAuto => {}
}
- if bcx.build_config.json_messages {
+ if bcx.build_config.json_messages() {
cmd.arg("--error-format").arg("json");
}
use std::sync::Arc;
use core::compiler::{BuildConfig, BuildContext, Compilation, Context, DefaultExecutor, Executor};
-use core::compiler::{Kind, Unit};
+use core::compiler::{Kind, MessageFormat, Unit};
use core::profiles::{ProfileFor, Profiles};
use core::resolver::{Method, Resolve};
use core::{Package, Source, Target};
}
}
-#[derive(Clone, Copy, Debug, PartialEq, Eq)]
-pub enum MessageFormat {
- Human,
- Json,
-}
-
#[derive(Clone, PartialEq, Eq, Debug)]
pub enum Packages {
Default,
let mut build_config = BuildConfig::new(config, jobs, &target, Some(rustc_info_cache))?;
build_config.release = release;
build_config.test = mode == CompileMode::Test || mode == CompileMode::Bench;
- build_config.json_messages = message_format == MessageFormat::Json;
+ build_config.message_format = message_format;
let default_arch_kind = if build_config.requested_target.is_some() {
Kind::Target
} else {
use tar::{Archive, Builder, EntryType, Header};
use core::{Package, Source, SourceId, Workspace};
-use core::compiler::DefaultExecutor;
+use core::compiler::{DefaultExecutor, MessageFormat};
use sources::PathSource;
use util::{self, internal, Config, FileLock};
use util::paths;
required_features_filterable: true,
},
release: false,
- message_format: ops::MessageFormat::Human,
+ message_format: MessageFormat::Human,
mode: ops::CompileMode::Build,
target_rustdoc_args: None,
target_rustc_args: None,
pub use self::cargo_clean::{clean, CleanOptions};
pub use self::cargo_compile::{compile, compile_with_exec, compile_ws, CompileOptions};
-pub use self::cargo_compile::{CompileFilter, CompileMode, FilterRule, MessageFormat, Packages};
+pub use self::cargo_compile::{CompileFilter, CompileMode, FilterRule, Packages};
pub use self::cargo_read_manifest::{read_package, read_packages};
pub use self::cargo_run::run;
pub use self::cargo_install::{install, install_list, uninstall};